/*
 * @Description: 闭包
 * @Author: zzj
 * @Date: 2021-09-05 11:32:01
 * @LastEditors: zzj
 * @LastEditTime: 2021-09-05 20:07:14
 */

//闭包
//经典例子：通常情况下，我们无法访问局部变量的；
//通过这个例子，可以实现外部去访问函数内部变量的操作
/*闭包的特点:
1.函数的内部嵌套函数
2.函数的内部引用外部的变量
3.闭包不会被垃圾回收机制回收
*/
function getNum(){
    var num = 0;
    return function(){
        var n = 0;
        console.log(++num);
        console.log(++n);
    }
}
var res = getNum();   //保持引用的关系
res();
res();
res();
getNum()();   // 这样写我们的getNum将被销毁，所以num一直为0 

//如果闭包的变量不使用了，因为不会被回收，所以我们可以手动去赋值为null